package com.gugee.ins.common.dal.service.product;


import com.baomidou.mybatisplus.extension.service.IService;
import com.gugee.ins.common.model.mysql.product.InsProduct;
import com.gugee.ins.data.common.msg.InsBloggerMessage;
import com.gugee.ins.data.common.msg.InsProductMessage;

import java.util.List;

/**
 * insBlogger dao
 * @author Huangxin
 */
public interface InsProductDao extends IService<InsProduct> {

    /**
     * 查找是否存在，存在则返回
     * @param productIds
     * @return
     */
    List<Long> findExistUid(List<Long> productIds);

    /**
     * 根据商品ID查找
     * @param productIds
     * @return
     */
    List<InsProduct> findByProductIds(List<Long> productIds);

    /**
     * 批量插入
     * @param products
     */
    void insertBatch(List<InsProduct> products);

    /**
     * 批量更新，暂时只更新最近发文时间字段
     * @param products
     */
    void updateBatch(List<InsProduct> products);

    /**
     * 根据productId 查找
     * @param productId
     * @return
     */
    InsProduct findByProductId(long productId);

    /**
     * 更新
     * @param product
     * @param withClTime
     */
    void updateMediaTagTime(InsProduct product,boolean withClTime);

    /**
     * 获取最大id
     * @return
     */
    long getMaxId();

    /**
     * 获取任务列表
     * @param startId
     * @param endId
     * @param limitTime
     * @return
     */
    List<InsBloggerMessage> findInsProductMessageByPages(long startId, long endId , long limitTime);

    /**
     * 更新商品分类
     * @param pid
     * @param cate
     */
    void updateCate(long pid,String cate);

    /**
     * 获取分析商品分类任务列表
     * @param startId
     * @param endId
     * @param limitTime
     * @return
     */
    List<InsProductMessage> findInsAnalysisProductCategoryMsgByPages(long startId, long endId , long limitTime);
}
